/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Conexao;

import Classes.Cliente;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.JOptionPane;

public class ClienteDAO {
    
    public static void cadastrarCliente(Cliente cliente) throws SQLException{
        try{
            Connection conexao = Conexao.conectar();
            Statement stmt = conexao.createStatement();
            String sql = "INSERT INTO Cliente(id, nome, cpf, email, uf, cidade, telefone1, telefone2) values(null, '"+cliente.getNome()+"' , '"+cliente.getCpf()+"' , '"+cliente.getEmail()+"' , '"+cliente.getUf()+"' , '"+cliente.getCidade()+"' , '"+cliente.getTelefone1()+"' , '"+cliente.getTelefone2()+"' ); ";
            stmt.execute(sql);
            stmt.close();
            conexao.close();
            JOptionPane.showMessageDialog(null,"Cliente cadastrado com sucesso!");
        }catch (SQLException se){
            JOptionPane.showMessageDialog(null,"Erro no banco de dados!");
            throw new SQLException("Erro! Não foi possível cadastrar o Cliente! " + se.getMessage());
        }
    }
    
    
    
    public static void atualizarCliente(Cliente cliente) throws SQLException{
        try{
            Connection conexao = Conexao.conectar();
            Statement stmt = conexao.createStatement();
            String sql = "UPDATE Cliente SET nome='"+cliente.getNome()+"', cpf='"+cliente.getCpf()+"', email='"+cliente.getEmail()+"', uf='"+cliente.getUf()+"', cidade='"+cliente.getCidade()+"', telefone1='"+cliente.getTelefone1()+"', telefone2='"+cliente.getTelefone2()+"' WHERE id='"+cliente.getId()+"' ";
            stmt.execute(sql);
            stmt.close();
            conexao.close();
        }catch (SQLException se){
            throw new SQLException("Erro! Não foi possível Atualizar o Cliente! " + se.getMessage());
        }
    }
    
    
    public static void excluirCliente(Cliente cliente) throws SQLException{
        try{
            Connection conexao = Conexao.conectar();
            Statement stmt = conexao.createStatement();
            String sql = "DELETE FROM Cliente WHERE id = "+cliente.getId()+";";
            stmt.execute(sql);
            stmt.close();
            conexao.close();
        }catch (SQLException se){
            throw new SQLException("Erro! Não foi possível Excluir o Cliente! " + se.getMessage());
        }
    }
    
    public static ArrayList<Cliente> listarCliente() throws SQLException{
        ArrayList<Cliente> Cli = new ArrayList<Cliente>();
        try{
            Connection conexao = Conexao.conectar();
            Statement stmt = conexao.createStatement();
            String sql = "SELECT * FROM Cliente";
            ResultSet rs = stmt.executeQuery(sql);
            while(rs.next()){
                Cliente c = new Cliente();
                //c.setId(rs.getString("codigo"));
                c.setNome(rs.getString("nome"));
                c.setCpf(rs.getString("cpf"));
                c.setEmail(rs.getString("email"));
                c.setUf(rs.getString("uf"));
                c.setCidade(rs.getString("cidade"));
                c.setTelefone1(rs.getString("telefone1"));
                c.setTelefone2(rs.getString("telefone2"));
                Cli.add(c);
            }
        }catch (SQLException e){
            throw new SQLException("Erro! Não foi possivel localizar os dados!"+ e.getMessage());
        }
        return Cli;
    }
            
}
